package com.education.welco.mapper;


import com.education.welco.pojo.SCatalog;
import com.education.welco.pojo.vo.ScatalogClassVO;
import com.education.welco.pojo.vo.ScatalogVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 教师创建课程 数据层
 *
 * @author d
 * @date 2020-05-08
 */
@Repository
public interface SCatalogMapper {


    //根据一级目录id查询其下所有课程
    public List<SCatalog> findByMenuId(Integer menuId);


    //根据userID和classId查询课程
//    public List<SCatalog> findByUserIdAndClassId(Integer userId,Integer classId,Integer catalogState);

    public List<SCatalog> findByUserIdAndClassId(ScatalogVO scatalogVO);

    public List<SCatalog> findByUserIdAndClassId2(ScatalogVO scatalogVO);

    public List<SCatalog> findByUserIdAndClassId3(ScatalogVO scatalogVO);

    /**
     * 查询教师创建课程信息
     *
     * @param id 教师创建课程ID
     * @return 教师创建课程信息
     */
    public SCatalog selectSCatalogById(Integer id);

    /**
     * 查询教师创建课程列表
     *
     * @param sCatalog 教师创建课程信息
     * @return 教师创建课程集合
     */
    public List<SCatalog> selectSCatalogList(SCatalog sCatalog);

    /**
     * 新增教师创建课程
     *
     * @param sCatalog 教师创建课程信息
     * @return 结果
     */
    public int insertSCatalog(SCatalog sCatalog);

    /**
     * 修改教师创建课程
     *
     * @param sCatalog 教师创建课程信息
     * @return 结果
     */
    public int updateSCatalog(SCatalog sCatalog);

    /**
     * 删除教师创建课程
     *
     * @param id 教师创建课程ID
     * @return 结果
     */
    public int deleteSCatalogById(Integer id);

    /**
     * 批量删除教师创建课程
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteSCatalogByIds(String[] ids);

    /**
     * 根据班级id与关键词 查询app端全部课程列表
     * @param classId 班级id
     * @param keyWord 查询关键词
     * @return
     */
    List<ScatalogClassVO> findCourseByClassId(@Param("classId") Integer classId,@Param("keyWord") String keyWord);

    /**
     * 根据(班级id与当天日期)去查询某一天的教学课表
     * @param classId 班级id
     * @param toDayString 查询某天的课表
     * @return
     */
    List<ScatalogClassVO> findClassScheduleByClassId(@Param("classId") Integer classId,@Param("toDayString") String toDayString,@Param("keyWord") String keyWord);

    SCatalog courseIntroByCourseId(@Param("courseId") String courseId);

    List<ScatalogClassVO> findClassScheduleByTeaId(@Param("teaId") Integer teaId,@Param("toDayString") String toDayString,@Param("keyWord") String keyWord);

    /**
     * 直播课的状态修改
     * @return
     */
    int updateLiveCourseStatus();

}